package thread;

/**
 * Thread:线程
 * 多线程
 * 线程:线性的执行流程，
 */
public class ThreadDemo1 {
    public static void main(String[] args) {
       Thread t1=new MyThread1();
       Thread t2=new MyThread2();
       /*
          启动线程要调用线程的start方法，而不是直接调用run方法！
          当我们调用一个线程的start方法后，线程就启动了，随后run方法会很快被自动执行
        */
       t1.start();
       t2.start();
    }
}

/**
 * 这种创建方式的优点:
 * 结构简单，适合匿名内部类方式创建
 * 缺点:
 * 1.由于java是单继承的，这导致如果我们继承了Thread就无法再继承其它类去复用方法了
 * 2.需要重写run方法，将线程要执行的任务定义在线程中，这导致线程与任务紧耦合的
 */
class MyThread1 extends Thread{
    public void run(){
        for (int i=0;i<10;i++){
            System.out.println("你是谁啊?");
        }
        CurrentThreadDemo.dosome();
    }
}
class MyThread2 extends Thread{
    public void run(){
        for (int i=0;i<10;i++){
            System.out.println("开门,查水表的！");
        }
    }
}
